package com.zr.dao;


import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;


import com.zr.model.UserModel;
import com.zr.util.JdbcUtil;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

/**
 * 用于操作数据中user表的学生个人信息
 * @author 洪英杰
 *
 */
public class UserInfoDao {
	/**
	 * 查询某个学生的个人信息的方法
	 * @param sid 传入的学生的id 
	 * @return 返回学生的个人信息
	 */
	public JSONArray checkInfo(int sid)
	{
		//连接数据库
		Connection con=JdbcUtil.getDBConnection();
		//定义一个查询学生的个人信息的sql语句
		String sql="select * from user where sid=?";
		JSONArray ja=new JSONArray();
		try {
			//传入sql语句到数据库中进行连接
			PreparedStatement pst=con.prepareStatement(sql);
			//传入学生的id号
			pst.setInt(1, sid);
			//执行sql语句后获得属性结果集对象
			ResultSet rs=pst.executeQuery();
			//循环输出某个学生的所有信息
			while(rs.next())
			{	
				JSONObject jo=new JSONObject();
				jo.put("sid", rs.getInt("sid"));
				jo.put("sname", rs.getString("sname"));
				jo.put("hid", rs.getInt("hid"));
				jo.put("scollege", rs.getString("scollege"));
				jo.put("ssex", rs.getString("ssex"));
				jo.put("sage", rs.getInt("sage"));
				jo.put("sphone", rs.getString("sphone"));
				jo.put("saddress", rs.getString("saddress"));
				ja.add(jo);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			JdbcUtil.closedConnection(con);
		}
		return ja;		
	}
	/**
	 * 修改学生个人信息
	 * @param user 传入的学生对象
	 * @return 成功返回true
	 */
	public boolean modifyInfo(UserModel user)
	{
		boolean flag=false;
		//连接数据库
		Connection con=JdbcUtil.getDBConnection();
		//定义一个修改学生的个人信息的sql语句
		String sql="update user set sname=?,scollege=?,ssex=?,sage=?,sphone=?,saddress=? where sid=?";
		try {
			//传入sql语句到数据库中进行连接
			PreparedStatement pst=con.prepareStatement(sql);
			pst.setString(1, user.getSname());
			pst.setString(2, user.getScollege());
			pst.setString(3, user.getSsex());
			pst.setInt(4, user.getSage());
			pst.setString(5, user.getSphone());
			pst.setString(6, user.getSaddress());
			pst.setInt(7, user.getSid());
			int i=pst.executeUpdate();
			if(i>0)
			{
				flag=true;
			}			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			JdbcUtil.closedConnection(con);
		}
		return flag;
	}

	/**
	 * 查询当前用户信息
	 * @param sid传入当前用户信息
	 * @return 当前用户信息
	 */
	public UserModel getInforMsg(int sid){
		UserModel um = new UserModel();
		String sql = "select * from user where sid = ?";
		Connection con = JdbcUtil.getDBConnection();
		try {
			PreparedStatement pst = con.prepareStatement(sql);
			pst.setInt(1, sid);
			ResultSet rs = pst.executeQuery();
			while(rs.next()){
				um.setSname(rs.getString("sname"));
				um.setScollege( rs.getString("scollege"));
				um.setSsex(rs.getString("ssex"));
				um.setSage(rs.getInt("sage"));
				um.setSphone(rs.getString("sphone"));
				um.setSaddress(rs.getString("saddress"));
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
		return um;
	}


}
